08. 实现

实现:Sarsa(0)

你可以在下方找到 Sarsa(或 Sarsa(0))的伪代码。

Sarsa(0) 保证会收敛于最优动作值函数,只要步长参数 \alpha 足够小,并且满足有限状态下的无限探索贪婪算法 (GLIE) 条件。我们在上一节课介绍了 GLIE 条件,并且讲解了 MC 控制。虽然有满足 GLIE 条件的很多方式,但是有一种方式在构建 \epsilon 贪婪策略时会逐渐降低 \epsilon 的值。

尤其是,使 \epsilon_i 对应于第 i 个时间步。然后,如果我们按照以下条件设置 \epsilon_i

  • 对于所有时间步 i\epsilon_i > 0,以及
  • 当时间步 i 接近无穷大时,\epsilon_i 降低到 0(即 \lim_{i\to\infty} \epsilon_i = 0),

然后该算法会保证产生一个很好的 q_ 估值,只要我们运行该算法足够长的时间。然后,可以通过对所有 s\in\mathcal{S} 设置 \pi_(s) = \arg\max_{a\in\mathcal{A}(s)} q_(s, a),获得相应的最优策略 \pi_

请在下个部分完成 Temporal_Difference.ipynb第 2 部分:TD 控制:Sarsa。请记得保存内容!

你可以查看 Temporal_Difference_Solution.ipynb 的相应部分,检查你的解决方案是否正确。